package com.itheima_03;

/**
 * 学生类
 */
public class Student {
    private String name;
    private int age;

    /**
     * 构造方法
     */
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 构造方法也可以重载
    public Student(String name) {
        this.name = name;
    }

    public void study() {
        System.out.println("好好学习，天天向上");
    }

    public void doHomework() {
        System.out.println("键盘敲烂，月入过万");
    }

    public void show() {
        System.out.println(name + "," + age);
    }

    public void setAge(int a) {
        if (a < 0 || a < 120) {
            System.out.println("你给的年龄有误");
        } else {
            this.age = a;
        }

    }

    public int getAge() {
        return this.age;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }
}

/**
 * private关键字
 * - 权限修饰符
 * - 可以修饰成员（成员变量和成员方法）
 * - 作用是保护成员不被别的类使用，被private修饰的成员只在本类中才能访问
 * - 通过暴露get/set方法来获取和设置变量，方法用public修饰
 */

/**
 * 构造方法的注意事项
 * - 如果没有定义构造方法，系统将给出一个默认的无参构造方法
 * - 如果定义了构造方法，系统将不再提供默认的构造方法
 * - 如果自定义了带参构造方法，还要使用无参构造方法，就必须再写一个无参构造方法
 * - 最佳实践：无论是否使用，都手工书写无参构造方法
 */
